// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
// nprogress进度条工具
import NProgress from 'nprogress' 
import 'nprogress/nprogress.css'// nprogress
//导入vuex组件内容
import Vuex from 'vuex';
import store from './vuex/store'
Vue.use(Vuex);
Vue.prototype.$store = store;

//导入elementui
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI);

//导入自定义的工具js
import myUtil from './util/myUtil.js';
Vue.prototype.$myUtil = myUtil;

// 导入cookie组件
import VueCookies from 'vue-cookies'
Vue.use(VueCookies)




Vue.config.productionTip = false

// 路由跳转之前
router.beforeEach((to, from , next) => {
  // 开启进度条
  NProgress.start();
  // 这个一定要加，没有next()页面不会跳转的。这部分还不清楚的去翻一下官网就明白了


  //  1. 如果在执行路由跳转前，发现localstorage中token无值则

  if(to.path == "/"){// 访问的是登录界面
    next();
  }else if(window.localStorage.getItem("token")){
    next();
  }else{
    ElementUI.Notification.error({
      title: '系统异常',
      message: "操作非法！请先登录再进行访问！"
    });

    // 使用路由跳转到一个404界面
    
    // 返回登录页面
    router.push("/");

  }
  
});


//当路由跳转结束后
router.afterEach(() => {  
  // 关闭进度条
  NProgress.done()
})






/* eslint-disable no-new */
// 创建vue，绑定主视图
// 脚手架项目中vue实例只会有一个，存在main.js中
new Vue({
  el: '#app',
  router,
  store, // 添加到全局组件
  components: { App },
  template: '<App/>'
})
